package com.xydtech.ecard.ecard.mapper;

import com.xydtech.ecard.ecard.domain.EcardApiAgricultureInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子名片新型农业主体信息Mapper接口
 *
 * @author yuzhiguo
 * @date 2024-08-19 上午10:53
 */
public interface EcardApiAgricultureInfoMapper {

    /**
     * 条件查询我的新型农业主体列表
     * @param ecardAgricultureInfo
     * @return
     */
    List<EcardApiAgricultureInfo> getMyAgricultureList(EcardApiAgricultureInfo ecardAgricultureInfo);

    /**
     * 查询电子名片新型农业主体列表
     * @param ecardAgricultureInfo
     * @return
     */
    List<EcardApiAgricultureInfo> getAgricultureList(EcardApiAgricultureInfo ecardAgricultureInfo);

    /**
     * 查询新型农业主体地图坐标列表接口
     * @param creatorId
     * @param deptId
     * @param agrType
     * @return
     */
    List<EcardApiAgricultureInfo> getAgricultureCoordinateList(@Param("creatorId") Long creatorId,
                                                               @Param("deptId") Long deptId,
                                                               @Param("agrType") Integer agrType);

    /**
     * 根据法人机构ID查询机构下所有新型农业主体坐标信息列表
     *
     * @param deptId
     * @param agrType
     * @return
     */
    List<EcardApiAgricultureInfo> getAllAgricultureCoordinateList(@Param("creatorId") Long creatorId,
                                                                  @Param("deptId") Long deptId,
                                                                  @Param("agrType") Integer agrType);

    /**
     * 查询电子名片新型农业主体信息
     * @param id
     * @return
     */
    EcardApiAgricultureInfo selectEcardAgricultureInfoById(Long id);

    /**
     * 唯一值验证，相同主体类型、支行、新型农业主体名不能重复
     * @param ecardAgricultureInfo
     * @return
     */
    int validateAgricultureInfo(EcardApiAgricultureInfo ecardAgricultureInfo);

    /**
     * 保存电子名片新型农业主体信息
     * @param ecardAgricultureInfo
     * @return
     */
    int addAgricultureInfo(EcardApiAgricultureInfo ecardAgricultureInfo);

    /**
     * 根据ID修改新型农业主体状态
     * @param id
     * @return
     */
    int changeAgricultureStatus(Long id);

    /**
     * 变更新型农业主体归属客户经理
     * @param id
     * @param creatorId
     * @param deptId
     * @return
     */
    int updateAgricultureUserId(@Param("id") Long id, @Param("creatorId") Long creatorId, @Param("deptId") Long deptId);
}
